package com.java.generic.special_reminder;

/**
 * 泛型被用于异常中如何理解？
 */
public class Exception<T> {
    // class MyException<T> extends RuntimeException {} // 泛型类不能扩展RuntimeException
    
    public static void main(String[] args) {
        // 若能捕获泛型异常
        /*try {
        
        } catch (T e) {
        
        } catch (MyException<String> e) {
        
        } catch (MyException<Integer> e) {
        
        }*/
        
        // 编译时进行类型擦除
        /*try {
        
        } catch (Throwable e) { // 子类异常的捕获必须先于父类异常，这导致子类与父类的捕获顺序不确定
        
        } catch (MyException<Object> e) { // 导致两个catch块相同
        
        } catch (MyException<Object> e) {
        
        }*/
    }
}
